package com.ictest.detectionflow.mobile;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.URLUtil;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;

/**
 * 系统设定活动。
 * 
 * @author zanezeng
 * 
 */
public class SettingActivity extends Activity
{
	/**
	 * 地址键值。
	 */
	public final static String KEY_ADDRESS = "service_address";

	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		// 调用基类实现
		super.onCreate(savedInstanceState);

		// 设置内容视图
		setContentView(R.layout.activity_setting);

		// 获得返回按钮
		ImageButton cmdBack = (ImageButton) this.findViewById(R.id.cmdBack);

		// 挂接点击事件监听
		cmdBack.setOnClickListener(new View.OnClickListener()
		{
			// 处理点击事件
			public void onClick(View v)
			{
				// 结束页面
				SettingActivity.this.finish();
			}
		});

		// 获得地址输入框
		EditText txtAddress = (EditText) this.findViewById(R.id.txtAddress);

		// 获得共享存储器
		SharedPreferences settings = getSharedPreferences(getString(R.string.app_name), 0);

		// 读取地址设置
		String url = settings.getString(KEY_ADDRESS, null);

		// 设置默认的地址
		txtAddress.setText(url);

		// 获得确定按钮
		Button cmdOK = (Button) this.findViewById(R.id.cmdOK);

		// 挂接点击事件
		cmdOK.setOnClickListener(new OnClickListener()
		{
			// 处理点击事件
			public void onClick(View v)
			{
				// 获得地址输入框
				EditText txtAddress = (EditText) findViewById(R.id.txtAddress);

				// 获得地址
				String url = txtAddress.getEditableText().toString();

				// 判断是否输入了内容
				if (null == url || url.length() == 0)
				{
					// 提示信息
					Toast.makeText(SettingActivity.this, "请填写服务器地址。", Toast.LENGTH_LONG).show();

					// 全部选中
					txtAddress.selectAll();

					// 设置焦点
					txtAddress.requestFocus();

					// 返回
					return;
				}

				// 判断输入内容是否合法
				if (!(URLUtil.isHttpUrl(url) || URLUtil.isHttpsUrl(url)))
				{
					// 提示信息
					Toast.makeText(SettingActivity.this, "请填写合法的服务器地址。", Toast.LENGTH_LONG).show();

					// 全部选中
					txtAddress.selectAll();

					// 设置焦点
					txtAddress.requestFocus();

					// 返回
					return;
				}

				// 获得共享存储器
				SharedPreferences settings = getSharedPreferences(getString(R.string.app_name), 0);

				// 获得编辑器
				SharedPreferences.Editor editor = settings.edit();

				// 保存服务器地址
				editor.putString(KEY_ADDRESS, url);

				// 提交数据
				editor.commit();

				// 设定返回值
				SettingActivity.this.setResult(Activity.RESULT_OK);

				// 结束活动
				SettingActivity.this.finish();
			}
		});

		// 获得确定按钮
		Button cmdCancel = (Button) this.findViewById(R.id.cmdCancel);

		// 挂接点击事件
		cmdCancel.setOnClickListener(new OnClickListener()
		{
			// 处理点击事件
			public void onClick(View v)
			{
				// 设定返回值
				SettingActivity.this.setResult(Activity.RESULT_CANCELED);

				// 结束活动
				SettingActivity.this.finish();
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		return true;
	}
}
